package br.ucb.negocio;

import java.io.Serializable;
import java.util.Collection;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.ManyToMany;
import javax.persistence.OneToMany;
import javax.persistence.Table;

@Entity
@Table(name="jogo")
public class Jogo extends EntidadeBase implements Serializable{
	//ATRIBUTOS
	private static final long serialVersionUID = 1L;
	
	private String nome;
	private String descricao;

    @OneToMany(cascade = CascadeType.ALL, mappedBy = "jogo")
    private Collection<Partida> partidas;
    
//    Bidirecional
//    @ManyToMany
//    @JoinTable(name = "liga_jogo", joinColumns = {
//        @JoinColumn(name = "jogo_id")}, inverseJoinColumns = {
//        @JoinColumn(name = "liga_id")})
//    private Collection<Liga> ligas;

//    Unidirecional
    @ManyToMany(mappedBy= "jogos")
    private Collection <Liga> ligas;
    
	//CONSTRUTOR
	public Jogo(Long id, String nome, String descricao) {
		this.setId(id);
		this.setNome(nome);
		this.setDescricao(descricao);
	}
	
	//CONSTRUTOR
	public Jogo(){}
	
	//M�TODOS ACESSORES
	@Column
	public String getNome() {
		return nome;
	}
	
	public void setNome(String nome) {
		this.nome = nome;
	}
	
	@Column
	public String getDescricao() {
		return descricao;
	}
	
	public void setDescricao(String descricao) {
		this.descricao = descricao;
	}
	
	public Collection<Partida> getPartidas() {
		return partidas;
	}

	public void setPartidas(Collection<Partida> partidas) {
		this.partidas = partidas;
	}

    public Collection<Liga> getLigas() {
        return ligas;
    }

    public void setLigas(Collection<Liga> ligas) {
        this.ligas = ligas;
    }
}
